home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / tex / cmsrc392.zip / CALU.MF < prev    next >
Text File  |  1992-03-30  |  16KB  |  395 lines

  1. % Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).
  2.  
  3. % These letters are intended for math, hence |math_fitting| is assumed.
  4.  
  5. % Character codes \0101 through \0132 are generated.
  6.  
  7. cmchar "Calligraphic A";
  8. beginchar("A",14.4u#,cap_height#,0);
  9. italcorr .5u#;
  10. adjust_fit(-.05w#,0); pickup cal.nib;
  11. lft x5=.54w; x7=.9w;
  12. top y5=h+.4cap_curve; bot y7=bot_flourish_line;
  13. z6=.3[z7,z5]-bend;
  14. pickup tilted.nib;
  15. lft x1=.05w; x2=.2w; rt x4=x5;
  16. y1=y2+.1h; bot y2=bot_flourish_line; top y4=h+.4cap_curve;
  17. y3=y6; z3=whatever[z2,z4]+2bend;
  18. draw\\(z1..tension 1.2..{right}z2) softjoin flex(z2,z3,z4); % left diagonal
  19. pickup cal.nib;
  20. erase fill\\(0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
  21. draw flex(z5,z6,z7) softjoin (z7--z7+cal.extension); % right diagonal
  22. draw rt z3--z6;  % bar
  23. math_fit(.5u#-.1cap_height#*slant,ic#); labels(1,2,3,4,5,6,7); endchar;
  24.  
  25. cmchar "Calligraphic B";
  26. beginchar("B",9.9u#,cap_height#,0);
  27. italcorr max(.8h#*slant-.1w#,.3h#*slant)+.5u#;
  28. adjust_fit(0,0); pickup cal.nib;
  29. lft x1=lft x3=0; x4=.6[x2,x5]; rt x5=.9w; x6=.4w; rt x7=w;
  30. x8=.4[x9,x7]; lft x9=rt x3;
  31. top y1=h+o; bot y3=-o; z2=.3[z3,z1]+bend;
  32. y4=y1; y5=.6[y6,y4]; y6=.55h; y7=.45[y8,y6]; bot y8=-o; y9=.1h;
  33. draw z1-cal.extension--flex(z1,z2,z3);  % stem
  34. draw z2{up}...z4...z5{down}...{dir 200}z6{dir 10}
  35.  ...z7{down}...z8{left}...z9;  % lobes
  36. math_fit(.5u#,.3h#*slant+.5u#); labels(1,2,3,4,5,6,7,8,9); endchar;
  37.  
  38. cmchar "Calligraphic C";
  39. beginchar("C",9.4u#,cap_height#,0);
  40. italcorr max(h#*slant-.15w#,.2h#*slant)+.5u#;
  41. adjust_fit(0,0); pickup cal.nib;
  42. x0=.7[x2,x1]; rt x1=.85w; x2=.6w; lft x3=0; x4=.5w; rt x5=w;
  43. y0=.7h; y1=.8[y0,y2]; top y2=h+o; y3=.5h; bot y4=-o; y5=.2h;
  44. draw\\(z0{2(x1-x0),y1-y0}...z1)
  45.   softjoin (z1...z2{left}....z3{down}...z4...z5);  % stroke
  46. math_fit(.5u#-.5h#*slant,.2h#*slant+.5u#); labels(0,1,2,3,4,5); endchar;
  47.  
  48. cmchar "Calligraphic D";
  49. beginchar("D",10u#,cap_height#,0);
  50. italcorr .6h#*slant+.5u#;
  51. adjust_fit(4u#,0); pickup cal.nib;
  52. lft x1=lft x3=0; x4=.2[x1,x5]; rt x5=w; x6=.2w; x7=0;
  53. top y1=top y4=h; bot y3=0; z2=.5[z3,z1]+bend;
  54. y5=.51[y6,y4]; bot y6=bot y7=0;
  55. draw flex(z1,z2,z3);  % stem
  56. draw z1---z4....z5{down}...z6---z7;  % lobe
  57. draw z1{left}...{down}z1-flourish_change;  % swash
  58. math_fit(.5u#-.8h#*slant,ic#-.5u#); labels(1,2,3,4,5,6,7); endchar;
  59.  
  60. cmchar "Calligraphic E";
  61. beginchar("E",8.5u#,cap_height#,0);
  62. italcorr max(h#*slant-.1w#,.2h#*slant)+.5u#;
  63. adjust_fit(0,0); pickup cal.nib;
  64. x1=.9[x3,x2]; rt x2=.9w; x3=.6[x4,x2]; lft x4=.05w;
  65. x5=.7[x6,x2]; lft x6=0; x7=.5[x6,x8]; rt x8=w;
  66. y1=y2-.1h; y2=.9h+o; top y3=h+o; y4=.5[y5,y3];
  67. y5=.55h; y6=.6[y5,y7]; bot y7=-o; y8=.2h;
  68. draw\\(z1{2(x2-x1),y2-y1}...z2)
  69.  softjoin (z2...z3{left}...z4{down}...{right}z5);  % upper arc
  70. draw z5{left}...z6{down}...z7{right}...z8;  % lower arc
  71. math_fit(.5u#-.2h#*slant,.2h#*slant+.5u#);
  72. labels(1,2,3,4,5,6,7,8); endchar;
  73.  
  74. cmchar "Calligraphic F";
  75. beginchar("F",13.5u#,cap_height#,0);
  76. italcorr h#*slant+.5u#;
  77. adjust_fit(-.1w#,-u#); pickup cal.nib;
  78. x1=.5w; x3=.4w;  lft x4=.1w; x5=x2+.35w; x6=.7[x1,x7]; rt x7=w;
  79. top y1=top y6=h; z2=.5[z3,z1]+1.2bend;
  80. bot y3=-o; y4=.1h; y5=y2; y7=.9h;
  81. draw flex(z1,z2,z3) softjoin (z3...{x4-x3,5(y4-y3)}z4);  % stem
  82. draw z1-flourish_change{up}...(z1-(u,0))---z6...{down}z7;  %  upper bar
  83. draw z2--z5--z5-(0,.1cap_curve);  % middle bar
  84. math_fit(0,.5ic#); labels(1,2,3,4,5,6,7); endchar;
  85.  
  86. cmchar "Calligraphic G";
  87. beginchar("G",9.4u#,cap_height#,.5desc_depth#);
  88. italcorr max(h#*slant-.05w#,.5h#*slant)+.5u#;
  89. adjust_fit(0,0); pickup cal.nib;
  90. x0=.7[x2,x1]; rt x1=.95w; x2=.6w; lft x3=0; x4=.5w;
  91. rt x5=w; x6=.5[x7,x5]; lft x7=.2w;
  92. y0=.7h+o; y1=.8[y0,y2]; top y2=h+o; y3=.5[y4,y2]; bot y4=.1h;
  93. y5=.5h; bot y6=-d-o; y7=-.5d;
  94. draw\\(z0{2(x1-x0),y1-y0}...z1)
  95.  softjoin (z1...z2{left}....z3{down}...z4...{up}z5);  % arc
  96. draw z5{down}...z6{left}...z7;  % tail
  97. math_fit(.5u#-.4h#*slant,.5h#*slant+.5u#);
  98. labels(0,1,2,3,4,5,6,7); endchar;
  99.  
  100. cmchar "Calligraphic H";
  101. beginchar("H",12.2u#,cap_height#,0);
  102. italcorr max(h#*slant-.2w#,.15h#*slant)+.5u#;
  103. adjust_fit(4u#,0); pickup cal.nib;
  104. lft x1=lft x3=.5u; rt x4=rt x6=.8w-.6u; rt x9=w;
  105. top y1=top y4=h; bot y3=-.06h; bot y6=bot_flourish_line; y9=y6+.1h;
  106. z2=.6[z3,z1]+bend; z5=.4[z6,z4]-bend;
  107. path p[]; p1=flex(z1,z2,z3); p2=flex(z4,z5,z6);
  108. p3=(-w,.45h)--(2w,.45h);
  109. rt z7+2bend=p3 intersectionpoint p1; rt z8=p3 intersectionpoint p2;
  110. draw (z1-flourish_change-bend{curl2}....z1-(u,0)---z1) softjoin p1;  % left stem
  111. draw p2 softjoin (z6{right}...{up}z9);  % right stem
  112. draw z7--z8;  % bar
  113. math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
  114. labels(1,2,3,4,5,6,7,8,9); endchar;
  115.  
  116. cmchar "Calligraphic I";
  117. beginchar("I",10.8u#,cap_height#,0);
  118. italcorr max(h#*slant+.5cap_curve#-.2w#,.15h#*slant)+.5u#;
  119. adjust_fit(0,0); pickup cal.nib;
  120. lft x0=0; x1=.9w; x2=x4=.5w; x5=.2w; x6=.8w; rt x7=1.05w;
  121. y0=.8h; top y1=top y2=h; z3=.5[z4,z2]+bend;
  122. bot y4=bot y5=bot y6=0; y7=.15h;
  123. draw z0{up}...z2---z1;  % upper bar
  124. z8=.5[z2,z1];
  125. draw z8{left}...z3{down}...{left}.5[z4,z5];  % stem
  126. draw z5---z6...{up}z7;  % lower bar
  127. math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
  128. labels(0,1,2,3,4,5,6,7); endchar;
  129.  
  130. cmchar "Calligraphic J";
  131. beginchar("J",11.7u#,cap_height#,.5desc_depth#);
  132. italcorr h#*slant+.25u#;
  133. adjust_fit(0,0); pickup cal.nib;
  134. x0=.6w; rt x1=w; rt x2=.75w; x3=.5[x4,x2]; lft x4=0;
  135. top y0=top y1=h; y2=.2h; bot y3=-d-o; y4=d;
  136. draw z1---z0...{down}z0-(4u,2/7h);  % upper bar
  137. draw z1{left}...z2{down}...z3{left}...{up}z4;  % stem and tail
  138. math_fit(.5u#,0); labels(0,1,2,3,4); endchar;
  139.  
  140. cmchar "Calligraphic K";
  141. beginchar("K",11u#,cap_height#,0);
  142. italcorr max(h#*slant-.2w#,.2h#*slant)+.5u#;
  143. adjust_fit(0,.1w#); pickup cal.nib;
  144. lft x1=lft x3=0; top y1=h+o; bot y3=-o; z2=.6[z3,z1]+bend;
  145. draw z1-cal.extension--flex(z1,z2,z3);  % stem
  146. pickup light_cal.nib;
  147. rt x4=.9w; x5=x4-.1w; x7=.8w; rt x8=1.1w;
  148. y4=.9h; top y5=h+o; bot y7=-o; y8=.2h-o;
  149. (lft z6)t_=z2.t_+penoffset up of pen_[cal.nib];
  150. draw z4{up}...{left}z5..tension atleast 2..{down}z6
  151.  ..tension atleast 3 and atleast 2..z7{right}...{up}z8;  % diagonals
  152. math_fit(.5u#,.2h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
  153.  
  154. cmchar "Calligraphic L";
  155. beginchar("L",10.8u#,cap_height#,0);
  156. italcorr .2h#*slant+.5u#;
  157. adjust_fit(0,0); pickup heavy_cal.nib;
  158. x1=.2w; x2=x1+.3w; rt x3=x2+.25w; lft x4=0;
  159. x5=.8[x4,x6]; rt x6=w; x7=.2[x4,x5];
  160. y1=.4h-o; top y2=h+o; y3=.8h; bot y4=bot y5=-o;
  161. y6=.2h-o; y7=9/70h-o;
  162. path p; p=z4...z7{right}..{right}z5...{up}z6; draw p;  % arm
  163. draw z4{dir .75angle(direction 0 of p)}
  164.  ...z1{up}...z2{right}...{down}z3;  % stem and flourish
  165. math_fit(.5u#,ic#); labels(1,2,3,4,5,6,7); endchar;
  166.  
  167. cmchar "Calligraphic M";
  168. beginchar("M",19.8u#,cap_height#,0);
  169. italcorr max(h#*slant-u#,.75cap_curve#)+.5cap_curve#+.5u#;
  170. adjust_fit(-.1w#,0); pickup med_cal.nib;
  171. (z20)t_=(z5)t_+penoffset down of currentpen
  172.  =(z4)t_+penoffset down of pen_[tilted.nib];
  173. z6=.3[z7,z5]-bend; z9=.3[z8,z10]+.5bend; z12=.3[z13,z11]-bend;
  174. x7=.5[x2,x13]; bot y7=.05h; top y5=h+o;
  175. (z0)t_=(z7)t_+penoffset right of currentpen
  176.  =(z8)t_+penoffset right of pen_[tilted.nib];
  177. pickup cal.nib;
  178. (z30)t_=(z11)t_+penoffset up of currentpen
  179.  =(z10)t_+penoffset up of pen_[tilted.nib];
  180. x13=w; bot y13=bot_flourish_line;
  181. pickup tilted.nib;
  182. lft x1=.1w; x2=.2w; x4=.2[x2,x7]; x10=.8[x7,x13];
  183. y1=.05h+y2; bot y2=bot_flourish_line; top y10=h+o;
  184. z3=whatever[z2,z4]+2bend; y3=y6;
  185. draw\\(z1..tension1.2..{right}z2) softjoin flex(z2,z3,z4);  % left stem
  186. erase fill z20--(.5w,y20)--(.5w,top y4)--(x20-4u,top y4)--cycle;
  187. pickup med_cal.nib;
  188. draw flex(z5,z6,z7);  % left diagonal
  189. pickup cal.nib;
  190. draw flex(z11,z12,z13) softjoin (z13--z13+cal.extension);  % right stem
  191. pickup tilted.nib;
  192. path p; p=flex(z8,z9,z10);
  193. erase fill z0--(x0,y0-.5h)--(x9,y0-.5h)--subpath(1,0) of p--cycle;
  194. erase fill z30--(x30,y30+.5h)--(x9,y30+.5h)--subpath(1,2) of p--cycle;
  195. draw p;  % right diagonal
  196. math_fit(.5u#-.05h#*slant,ic#);
  197. labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,20,30); endchar;
  198.  
  199. cmchar "Calligraphic N";
  200. beginchar("N",9u#,cap_height#,0);
  201. italcorr h#*slant+.5u#;
  202. adjust_fit(2u#,2.5u#); pickup med_cal.nib;
  203. (z0)t_=(z5)t_+penoffset down of currentpen
  204.  =(z4)t_+penoffset down of pen_[tilted.nib];
  205. (z20)t_=(z7)t_+penoffset up of currentpen
  206.  =(z8)t_+penoffset up of pen_[tilted.nib];
  207. z6=.3[z7,z5]-bend; rt z7=(w,0); top y5=h+o;
  208. pickup tilted.ni